[ANE] AIR Native Extension API
前回はAIR Native Extension(ANE)を開発する準備を行いました。
今回は、Native Extension API についてです。
Native Extensionでできること
まず、Native Extensionでできることを確認しましょう
- AIRからネイティブライブラリの関数(ネイティブ関数)が呼び出し
- ネイティブ関数を呼び出しする引数にASオブジェクトを指定可能
- ネイティブ関数の返り値は、ASオブジェクト
- ネイティブ関数の中からASオブジェクトのプロパティや関数にアクセス可能
- ネイティブ関数の中からイベントを発生可能
これらは
Native Extension APIを使って開発します。
Native Extension API は、C言語で開発します。AndroidのみJavaで開発します。
下記リンクは、Native Extension を作る際に必要なAPIについてのC言語用のドキュメントです。
Native C API Reference
http://help.adobe.com/en_US/air/extensions/WSb464b1207c184b14-62b8e11f12937b86be4-8000.html
下記リンクは、Native Extension を作る際に必要なAPIについてのJava言語用のドキュメントです。
Android Java API Reference
http://help.adobe.com/en_US/air/extensions/WSff7e9115a8550eef64893a0c132502c6a64-8000.html
Netive Extension コンテキスト
FREContext
ActionScriptとNative Extensionでやり取りするためのオブジェクト
FREObject
Native Extension専用の特殊な型
FREBitmapData FREByteArray
Native Extension専用の関数
FREFunction FRENamedFunction FREContextInitializer FREContextFinalizer FREInitializer FREFinalizer
Native Extension専用の列挙型
FREResult FREObjectType
これらが定義されているヘッダーは、
AIR 3 HOME/include/FlashRuntimeExtensions.h にあります。
また、Windowsはコンパイルのためにライブラリが必要になります。
AIR 3 HOME/lib/win/FlashRuntimeExtensions.lib にあります。
また、このNative Extension APIを用いて、プラットフォームごとにネイティブライブラリ作成する必要があります。
[Windows]
開発言語:C言語
拡張子:.dll
[OS X]
開発言語:C言語
拡張子:.framework
[iOS]
開発言語:C言語
拡張子:.a
[Android]
開発言語:Java または C言語
拡張子:.jar または .so
次は、Native Extension APIを用いてデスクトップ用のネイティブライブラリを作っていきます。